Metode numerice - Aplicatii
Lucrarea 13. Metode indirecte pentru rezolvarea ecuatiilor diferentiale ordinare: metode de tip predictor-corector
Există
o serie de aplicaţii practice care presupun studiul unor sisteme sau
procese dinamice. În acest caz se urmăreşte stabilirea legii de
variaţie a unei funcţii y,
care descrie starea sistemului. În general, funcţia y depinde nu numai de una sau mai multe variabile independente x, ci şi de alte valori ale sale
anterioare în raport cu una din variabilele independente, astfel spus de
stări anterioare ale sistemului. Asemenea probleme conduc la modele
matematice descrise de ecuaţii diferenţiale.
În cazul particular al ecuaţiilor
diferenţiale ordinare, orice problemă descrisă de asemenea
ecuaţii poate fi redusă la studiul unui sistem de ecuaţii
diferenţiale de ordin întâi. De exemplu, ecuaţia de ordinul doi :
poate fi adusă
la forma a două ecuaţii diferenţiale de ordinul întâi:
unde z(x) reprezintă o funcţie sau
variabilă dependentă auxiliară. Cea mai la îndemână
soluţie de alegere a funcţiilor auxiliare z(x) constă în definirea lor ca derivate ale funcţiei
originare y(x) sau ale
funcţiilor auxiliare z(x)
precedente în succesiunea substituţiilor de tip (8.2). Prin urmare,
problema originară a ecuaţiilor diferenţiale ordinare poate fi
redusă, în general, la analiza unui sistem de n ecuaţii diferenţiale de ordin întâi scris pentru n funcţii yi(x), i=1,...,n sub forma:
unde funcţiile
fi descriu forme în
general neliniare în variabila independentă x şi cele n
variabile dependente yi.
În general, acest
sistem de ecuaţii diferenţiale ordinare admite o infinitate de soluţii. Pentru
particularizarea uneia dintre acestea, care să reprezinte soluţia
problemei studiate, este necesar ca ecuaţiilor să li se asocieze o
serie de condiţii specifice problemei respective. Aceste condiţii
impun de regulă valori pentru funcţiile yi(x) în anumite puncte bine specificare. Poziţia
acestor puncte în domeniul variabilei x
pentru care se studiază procesul determină tipul de problemă
şi deseori chiar şi metoda de rezolvare ce trebuie folosită.
Se considera
problema numita cu condiţii
iniţiale pentru care se indică valorile funcţiilor yi(x) într-un punct de referinţă
xR, considerat ca origine
a procesului. Din considerente legate de simplificarea notaţiilor folosite
şi pentru o mai bună înţelegere a mecanismelor ce
guvernează diferitele metode numerice specifice, problema cu condiţii
iniţiale va fi prezentată pentru cazul particular al ecuaţiilor
diferenţiale de ordin întâi (problema Cauchy) de forma
şi condiţiei iniţiale:
Pentru forme
relativ simple ale ecuaţiei prezentate,, problema Cauchy admite o
rezolvare analitică, care are avantajul de a determina în formă
explicită legea de variaţie a funcţiei y cu variabila
independentă x. Numeroase
aplicaţii practice conduc la ecuaţii diferenţiale cu o
formă complexă a expresiilor ce definesc derivata dy/dx.
Mai mult decât atât, uneori nici măcar nu avem la dispoziţie asemenea
expresii, ci doar valori ale lor în anumite puncte. Din aceste motive,
rezolvarea problemei (8.4) -(8.5) se face pe cale numerică, cu metode
special dezvoltate în acest scop.
Ideea care stă la baza tuturor
metodelor numerice de rezolvare a ecuaţiilor diferenţiale ordinare cu
condiţii iniţiale este următoarea: notaţiile dy şi dx se înlocuiesc cu
creşterile finite Dy şi Dx. Se obţine astfel o expresie algebrică care
permite calculul variaţiei funcţiei y(x) la modificarea variabilei independente x cu un pas Dx. Aproximaţia numerică obţinută pe
această cale se va apropia cu atât mai mult de soluţia exactă cu
cât pasul Dx va fi mai mic.
Metodele numerice de rezolvare a unei
ecuaţii diferenţiale pornesc
din punctul (x0, y0)
precizat de condiţia iniţială şi, avansând cu pasul Dx, determină un şir de puncte (xk, yk), k=1, 2,... care
descriu sub formă numerică soluţia problemei.
Dupa
cum arata si numele lor, metodele
predictor–corector folosesc doua formule: (i) o formula de prezicere,
care ofera o estimatie initiala a solutiei yk
si (ii) o formula de corectie, care asigura imbunatatirea
solutiei yk calculata cu
formula anterioara. In majoritatea cazurilor, pentru fiecare punct de calcul (xk, yk) formula predictor se aplica o singura data, in
timp ce formula corector se poate
aplica de mai multe ori, in mod iterativ, pana la atingerea unei precizii
dorite.
Estimatia initiala se calculeaza
folosind o metoda explicita directa (de exemplu metoda Runge–Kutta ) sau indirecta
de acelasi ordin cu metoda implicita aplicata in etapa corector.
Algoritmul 1 – Metode
predictor-corector
1.
Definirea ecuatiei diferentiale de ordin intai, prin
functia f(x,y), a conditiei initiale y(x0)=y0, a
pasului de integrare h si a numarului
de puncte de calcul n.
2.
Precizarea ordinului K al metodei predictor-corector folosite, a preciziei de calcul cu
formula corector Eps si a numarului
maxim de iteratii Nmax.
3.
Aplicarea a K-1
pasi folosind o metoda directa pentru demararea algoritmului. Se calculeaza
aproximatiile y1, y2,...,yK-1.
4.
Etapa predictor-corector:
4.1 Stabilirea
punctului de calcul: k¬K-1;
4.2 Aplicarea formulei
predictor: yk+1 ¬ P(xk, yk, xk-1, yk-1,
... , xk-K+1, yk-K+1)
4.3 Procesul iterativ
al formulei corector (It ¬ 0) :
4.3.1 Trecerea la o noua
iteratie: It ¬ It+1;
4.3.2 Memorarea
aproximatiei curente: yt ¬ yk+1;
4.3.3 Aplicarea formulei
corector: yk+1 ¬ C(xk+1, yk+1, xk, yk,
... , xk-K+2, yk-K+2)
4.3.4 Abaterea intre
aproximatiile din ultimele doua
iteratii:
4.3.5 Criteriul de
oprire: daca It < Nmax si E > Eps, se revine la pasul
4.3.1.
In caz contrar se intrerupe bucla
iterativa si se trece la pasul 4.4.
4.4 Daca k < n, se trece la urmatorul punct de
calcul (k ¬ k+1) si se revine la
pasul 4.2. In caz contrar se trece la pasul 5.
5.
Solutia aproximativa se gaseste in vectorii x si y.
In continuare se indica perechile de
formule folosite pentru cateva metode predictor – corector, impreuna cu
ordinul erorii de trunchiere asociate
acestora:
In general, metodele
predictor–corector se caracterizeaza prin performante superioare celor
ale metodelor explicite de acelasi ordin. Aceste performante se traduc printr-o
precizie si o stabilitate numerica mai buna, dar timpul de calcul creste ca
urmare a cresteri numarului de evaluari ale functiilor f(x,y) in formula corector.